﻿


using System;
using Demo.Infrastructure;
using Demo.Domain;
using Demo.ServiceContracts;
using Demo.Repository;
using Demo.DataObjects;
using AutoMapper;

namespace Demo.Application
{
    public class ModuleServiceImpl : IModuleService 
    {
        private readonly IModuleRepository moduleRepository = ServiceLocator.Instance.GetService<IModuleRepository>();


        public void CreateModule(string name, int sort = 0)
        {
            moduleRepository.CreateModule(name, sort);
        }

        public ModuleDTO GetModuleDTOWithName(string name)
        {
            var obj =  moduleRepository.GetModuleWithName(name);
            return Mapper.Map<ModuleDTO>(obj);
        }

        public ModuleDTO GetModuleDTOWithId(int id)
        {
            var obj = moduleRepository.GetModuleWithId(id);
            return Mapper.Map<ModuleDTO>(obj);
        }

        public System.Collections.Generic.IList<ModuleDTO> GetModuleDTOWithUserId(int userid)
        {
            var list = moduleRepository.GetModuleWithUserId(userid);
            return Mapper.Map < System.Collections.Generic.List<ModuleDTO>>(list);
        }

        public System.Collections.Generic.IList<ModuleDTO> GetModuleDTO()
        {
            var list = moduleRepository.GetModule();
            return Mapper.Map<System.Collections.Generic.List<ModuleDTO>>(list);
        }

        public bool ChangeModuleWithName(string oldName, string newName)
        {
            return moduleRepository.ChangeModuleWithName(oldName, newName);
        }

        //public bool ChangeModuleWithName(string Name, int newSort)
        //{
        //    return moduleRepository.ChangeModuleWithName(Name, newSort);
        //}
    }
}
